(function() {

    // 动物类
    class Animal{
        name:String;

        constructor(name: string){
            this.name = name;
        }

        say(msg:string) {
            console.log(`${this.name}:${msg}`)
        }
    }

    // 狗类
    class Dog  extends Animal{
        age: number;
        constructor(name:string,age:number){
            // 如果在类中重写了构造函数，需要通过super()，重写构造函数。
            super(name);
            this.age = age
        }

        run() {
            console.log(`${this.name}：打滚！！！`)
        }
        say() {
            // 在类的方法中，super表示当前的“父类”
            super.say("你大爷的")
        }
    }

    const dog1 = new Dog("狗子",2)
    console.log(dog1.say())
    console.log(dog1.age)
})()